home *** CD-ROM | disk | FTP | other *** search
/ Scene 96 / Scene 96 International Edition (Zyklop Software) (Disc 2) (1997).iso / misc / coding / e_os208 / exampl11 / font.inc < prev    next >
Text File  |  1996-06-30  |  4KB  |  189 lines

  1.  
  2. ; 'warlock/abc
  3.  
  4. gotoXY MACRO amithesonyouvebeenwaitingfor,aty
  5.     mov xfont,amithesonyouvebeenwaitingfor
  6.     mov yfont,aty
  7.        ENDM
  8.  
  9. textColor MACRO jajkonatwardo
  10.     mov fontcolor,jajkonatwardo
  11.         ENDM
  12.  
  13. write MACRO tekknosuxx
  14.  local metalrulez,christagony
  15.     jmp metalrulez
  16.     christagony db tekknosuxx,'$'
  17.  metalrulez:
  18.     lea edx,christagony
  19.     call fooont
  20.       ENDM
  21.  
  22. writeLn MACRO tekknosuxx
  23.  local metalrulez,christagony
  24.     jmp metalrulez
  25.     christagony db tekknosuxx,'$'
  26.  metalrulez:
  27.     lea edx,christagony
  28.     call fooont
  29.     mov xfont,0
  30.     inc yfont
  31.         ENDM
  32.  
  33. writeXY MACRO samael,burzum,tekknosuxx
  34.  local metalrulez,christagony
  35.     jmp metalrulez
  36.     christagony db tekknosuxx,'$'
  37.  metalrulez:
  38.     mov xfont,samael
  39.     mov yfont,burzum
  40.     lea edx,christagony
  41.     call fooont
  42.         ENDM
  43.  
  44. write8h MACRO 
  45.     call makeH8table
  46.     lea edx,___vhex
  47.     call fooont
  48.       ENDM
  49.  
  50. write16h MACRO 
  51.     call makeH16table
  52.     lea edx,___vhex
  53.     call fooont
  54.       ENDM
  55.  
  56. write32h MACRO 
  57.     call makeH32table
  58.     lea edx,___vhex
  59.     call fooont
  60.       ENDM
  61.  
  62. makeh32table:
  63.     call misiujoginiemaogona
  64.     mov d [___VHex+4],edx
  65.     rol eax,16
  66.     call misiujoginiemaogona
  67.     mov d [___VHex],edx
  68.     ret
  69.  
  70. makeh16table:
  71.     call misiujoginiemaogona
  72.     mov d [___VHeX],edx
  73.     mov b [___VHex+4],'$'
  74.     ret
  75.  
  76. ___Vhex db '########$'
  77. hexTable db '0123456789ABCDEF' ;nawet ICE'umie to zacodowac ;)
  78.  
  79. makeh8table:
  80.     call vodkaluksusowa
  81.     mov w [___VHeX],dx
  82.     mov b [___VHex+2],'$'
  83.     ret
  84.  
  85. misiujoginiemaogona:
  86.     call vodkaluksusowa
  87.     rol edx,16
  88.     xchg ah,al
  89.     call vodkaluksusowa
  90.     ret
  91.  
  92. vodkaluksusowa:
  93.     movzx ebx,al
  94.     and ebx,1111b
  95.     mov dh,[hexTable+ebx]
  96.     movzx ebx,al
  97.     and ebx,11110000b
  98.     ror ebx,4
  99.     mov dl,[hexTable+ebx]
  100.     ret
  101.  
  102. xfont dd 0
  103. yfont dd 0
  104. fontcolor db 15
  105. ; IN: EDX = OFFSET TO TEXT
  106. fooont:
  107.     mov edi,[_0a0000h]
  108.  
  109.     mov eax,xfont
  110.     lea eax,[eax*2+eax]
  111.     shl eax,1
  112.     add edi,eax
  113.     mov eax,yfont
  114.     cmp eax,24
  115.     ja endNap ;fatamorgana ;)
  116.     lea eax,[eax*4+eax]
  117.     shl eax,9
  118.     add edi,eax
  119.  font1:
  120.     mov al,[edx]
  121.     inc edx
  122.     cmp al,'$'
  123.     je endNap
  124.     cmp al,97
  125.     jb nieodejmowacboupierdole
  126.     sub al,32
  127.  nieodejmowacboupierdole:
  128.     sub al,32
  129.     movzx eax,al
  130.     shl eax,3
  131.     lea esi,font
  132.     add esi,eax
  133.     mov ebx,8
  134.  lupYfont:
  135.     lodsb
  136.     mov ecx,5
  137.  lupXfont:    
  138.     test al,1
  139.     jz nodrawfont
  140.     mov ah,fontcolor
  141.     mov [edi],ah
  142.  nodrawfont:
  143.     ror al,1
  144.     inc edi
  145.     dec ecx
  146.     jnz lupXfont
  147.     add edi,320-5
  148.     dec ebx
  149.     jnz lupYfont
  150.     inc Xfont
  151.     cmp Xfont,53
  152.     jb okefontxjestdobrykurwa
  153.     mov xfont,0
  154.     inc yfont
  155.     jmp fooont
  156.  okefontxjestdobrykurwa:
  157.     sub edi,320*8-6
  158.     jmp font1
  159.  endNap:
  160.     ret
  161.  
  162. Font label BYTE
  163.      DB 00,00,00,00,00,00,00,00,12,12,12,12,00,12,00,00,27,27,09,00
  164.      DB 00,00,00,00,10,31,10,31,10,00,00,00,30,05,14,20,15,04,00,00
  165.      DB 19,11,04,26,25,00,00,00,06,11,06,23,11,22,00,00,12,12,06,00
  166.      DB 00,00,00,00,12,06,06,06,12,00,00,00,06,12,12,12,06,00,00,00
  167.      DB 18,12,30,12,18,00,00,00,04,04,31,04,04,00,00,00,12,12,06,00
  168.      DB 00,00,00,00,00,00,30,00,00,00,00,00,00,00,00,12,12,00,00,00
  169.      DB 24,12,06,03,01,00,00,00,14,25,21,19,14,00,00,00,08,12,08,08
  170.      DB 08,00,00,00,15,16,14,01,31,00,00,00,15,16,14,16,15,00,00,00
  171.      DB 12,10,09,31,08,00,00,00,15,01,15,16,15,00,00,00,14,01,15,17
  172.      DB 14,00,00,00,31,16,08,04,04,00,00,00,14,17,14,17,14,00,00,00
  173.      DB 14,17,30,16,14,00,00,00,12,12,00,12,12,00,00,00,12,12,00,12
  174.      DB 08,04,00,00,24,12,06,12,24,00,00,00,00,30,00,30,00,00,00,00
  175.      DB 06,12,24,12,06,00,00,00,14,25,12,12,00,12,00,00,14,17,29,13
  176.      DB 01,30,00,00,14,17,31,17,17,00,00,00,15,17,15,17,15,00,00,00
  177.      DB 30,01,01,01,30,00,00,00,15,17,17,17,15,00,00,00,31,01,15,01
  178.      DB 31,00,00,00,31,01,15,01,01,00,00,00,30,01,25,17,30,00,00,00
  179.      DB 17,17,31,17,17,00,00,00,14,04,04,04,14,00,00,00,16,16,16,17
  180.      DB 14,00,00,00,18,10,06,10,18,00,00,00,02,02,02,02,30,00,00,00
  181.      DB 17,27,21,17,17,00,00,00,17,19,21,25,17,00,00,00,14,17,17,17
  182.      DB 14,00,00,00,15,17,15,01,01,00,00,00,14,17,17,17,14,24,00,00
  183.      DB 15,17,15,05,25,00,00,00,30,01,14,16,15,00,00,00,31,04,04,04
  184.      DB 04,00,00,00,17,17,17,17,30,00,00,00,17,17,17,10,04,00,00,00
  185.      DB 17,17,21,27,17,00,00,00,17,10,04,10,17,00,00,00,17,17,10,04
  186.      DB 04,00,00,00,31,08,04,02,31,00,00,00
  187.  
  188.  
  189.